"""
【包】
"""

"""
【包】
    从物理上看，python包就是一个文件夹，在该文件夹下有一个 __init__.py 文件，该文件夹可用于包含多个模块文件。
    从逻辑上看，包的本质任然是模块。
    
    功能：当模块很多时，包可以帮助我们管理这些模块
    
    存在 __init__.py 文件，这个文件夹才是包，不存在的话，那就是一个普通的文件夹
    
    1、自定义包
        直接新建带有 __init__.py 文件的文件夹即可
    
    2、安装第三方包
        在python的生态中，有非常之多的第三方包，可以极大地帮助我们提高开发效率。如：
            - 科学计算中常用的：     numpy包
            - 数据分析中常用的：     pandas包
            - 大数据计算中常用的：   pyspark包、apache-flink包
            - 图形可视化常用的：    matplotlib包、pyecharts包
            - 人工智能常用的：      tensorflow包

        在cmd中使用pip命令进行安装包
            语法：
                pip install 包名
"""

import time

# 1 时间戳
print(time.time())

# 2 格式化的字符串模式：2030-11-11 11:11:11
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 3 格式化的时间戳：1610508271.0
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1610508271.0)))

print(time.localtime())

print(time.mktime(time.localtime()))  # 结构化时间转时间戳


import datetime

# 1
print(datetime.datetime.now())

# 2
datetime.timedelta(days=1)  # 1天
print(datetime.datetime.now() + datetime.timedelta(days=1))  # 明天
print(datetime.datetime.now() - datetime.timedelta(days=1))  # 昨天


import random

# 1
print(random.randint(1, 100))  # 1-100的随机整数

# 2
print(random.random())  # 0-1的随机浮点数

# 3
print(random.choice([1, 2, 3, 4, 5]))  # 随机选择一个元素

# 4
print(random.sample([1, 2, 3, 4, 5], 3))  # 随机选择3个元素，不重复

# 5
print(random.uniform(1, 100))  # 1-100的随机浮点数

# 6
print(random.shuffle([1, 2, 3, 4, 5]))  # 打乱列表

# 7
print(random.randrange(1, 100, 2))  # 1-100的偶数随机整数，左闭右开


# -------------------------------------------------------------------
import os

# 1
print(os.getcwd())  # 获取当前工作目录

# 2
print(os.listdir())  # 获取当前目录下的文件和文件夹列表

# os.remove(
#     "f:\Project\python\study\pythonProject\study_foundation\2024_01_08_package.py"
# )  # 删除文件

# os.rename(
#     "f:\Project\python\study\pythonProject\study_foundation\2024_01_08_package.py",
#     "f:\Project\python\study\pythonProject\study_foundation\2024_01_08_package_new.py",
# )  # 重命名文件

# os.mkdir("f:\Project\python\study\pythonProject\study_foundation\test")  # 创建文件夹

# os.rmdir("f:\Project\python\study\pythonProject\study_foundation\test")  # 删除文件夹，只能删除空文件夹

# print(
#     os.chdir("f:\Project\python\study\pythonProject\study_foundation")
# )  # 切换工作目录

# print(os.environ)  # 获取系统环境变量

print(
    os.stat(
        r"f:\Project\python\study\pythonProject\study_foundation\2024_01_08_package.py"
    )
)

print(os.name)  # 获取操作系统类型，'nt'表示windows系统，'posix'表示linux系统

# print(os.path.dirname(path))  # 返回path的父级目录
# print(os.path.basename(path))  # 返回path的最后一级目录或文件名
# print(os.path.isabs(path)) # 判断path是否为绝对路径
# print(os.path.isfile(path)) # 判断path是否为文件
# print(os.path.isdir(path)) # 判断path是否为文件夹
# print(os.path.exists(path)) # 判断path是否存在
# print(os.path.getsize(path)) # 获取path的文件大小
# print(os.path.join(path1, path2)) # 连接两个路径
# print(os.path.split(path)) # 将path分割成目录和文件名
# print(os.path.splitext(path)) # 将path分割成文件名和扩展名
# print(os.path.getatime(path))  # 获取path的最后访问时间
# print(os.path.getmtime(path))  # 获取path的最后修改时间
# print(os.path.getctime(path))  # 获取path的创建时间


import sys

# 1
print(sys.argv)  # 获取命令行参数

# 2
print(sys.path)  # 获取模块搜索路径
